// DataSructure.cpp : This file contains the 'main' function. Program execution begins and ends there.
//

#include <iostream>
#include <vector>
#include"ZTravel.h"
#include "RotateMatrix.h"
#include "Stack.h"
#include "Queue.h"

int main()
{
    std::vector<std::vector<int>> arr = {
        { 1,  2,  3,  4,  5  },
        { 6,  7,  8,  9,  10 },
        { 11, 12, 31, 14, 15 },
        { 16, 17, 18, 19, 20 },
        { 21, 22, 23, 24, 25 }
    };
	ZTravel(arr);
    std::cout << std::endl;

    RotateMatrixOverturn(arr);
    std::cout << std::endl;

    std::cout << "Stack Test" << std::endl;
    StackList<int>* stackTop = new StackList<int>();
    stackTop->Next = nullptr;
    stackTop->Data = 0;
    Push(stackTop, 0);
    PrintStack(stackTop);
    Push(stackTop, 1);
    PrintStack(stackTop);
    Push(stackTop, 2);
    PrintStack(stackTop);

    Pop(stackTop);
    PrintStack(stackTop);

    std::cout << "Queue Test" << std::endl;
    QueueList<int>* queueTop = new QueueList<int>();
    queueTop->Next = nullptr;
    queueTop->Data = 0;
    Push(queueTop, 0);
    PrintQueue(queueTop);
    Push(queueTop, 1);
    PrintQueue(queueTop);
    Push(queueTop, 2);
    PrintQueue(queueTop);

    Pop(queueTop);
    PrintQueue(queueTop);
    
}
